{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv('logreg1',names=['Exam1', 'Exam2', 'Admitted'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Exam1</th>\n",
       "      <th>Exam2</th>\n",
       "      <th>Admitted</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>100.000000</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>100.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>65.644274</td>\n",
       "      <td>66.221998</td>\n",
       "      <td>0.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>19.458222</td>\n",
       "      <td>18.582783</td>\n",
       "      <td>0.492366</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>30.058822</td>\n",
       "      <td>30.603263</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>50.919511</td>\n",
       "      <td>48.179205</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>67.032988</td>\n",
       "      <td>67.682381</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>80.212529</td>\n",
       "      <td>79.360605</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>99.827858</td>\n",
       "      <td>98.869436</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Exam1       Exam2    Admitted\n",
       "count  100.000000  100.000000  100.000000\n",
       "mean    65.644274   66.221998    0.600000\n",
       "std     19.458222   18.582783    0.492366\n",
       "min     30.058822   30.603263    0.000000\n",
       "25%     50.919511   48.179205    0.000000\n",
       "50%     67.032988   67.682381    1.000000\n",
       "75%     80.212529   79.360605    1.000000\n",
       "max     99.827858   98.869436    1.000000"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# df.info()\n",
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Exam1</th>\n",
       "      <th>Exam2</th>\n",
       "      <th>Admitted</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>34.623660</td>\n",
       "      <td>78.024693</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.286711</td>\n",
       "      <td>43.894998</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>35.847409</td>\n",
       "      <td>72.902198</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60.182599</td>\n",
       "      <td>86.308552</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>79.032736</td>\n",
       "      <td>75.344376</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Exam1      Exam2  Admitted\n",
       "0  34.623660  78.024693         0\n",
       "1  30.286711  43.894998         0\n",
       "2  35.847409  72.902198         0\n",
       "3  60.182599  86.308552         1\n",
       "4  79.032736  75.344376         1"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = np.array([df['Exam1'] , df['Exam2']])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = np.array(df['Admitted']).reshape(1,100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [],
   "source": [
    "def sigma(x):\n",
    "    \n",
    "    s = 1/(1 + np.exp(-x))\n",
    "    \n",
    "    return s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [],
   "source": [
    "def initialize(X):\n",
    "    #\n",
    "    #To initialize the weights and bias.\n",
    "    #Here two features so nx = 2\n",
    "    #Hence Weight matrix must be (2,1)\n",
    "    n = X.shape[0]\n",
    "    w = np.zeros((n,1))\n",
    "    b = 0\n",
    "    \n",
    "    return w , b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [],
   "source": [
    "def fpropogate(X,w,b):\n",
    "    \n",
    "    # w - (2X1)\n",
    "    # X = (2Xm)\n",
    "    # Z = w'.X + b ==> (1x2).(2,m) + 0 ==> (1,m)\n",
    "    \n",
    "    Z = np.dot(w.T , X) + b\n",
    "    \n",
    "    A = sigma(Z)\n",
    "    \n",
    "    return A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cost(X,y,w,b):\n",
    "    \n",
    "#     w,b = initialize(X)\n",
    "    \n",
    "    A = fpropogate(X,w,b)\n",
    "    \n",
    "    L = y*np.log(A) + (1-y)*np.log(1-A)\n",
    "    \n",
    "    m = X.shape[1]\n",
    "    \n",
    "    J = (-1/m)*np.sum(L)\n",
    "    \n",
    "    return J"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gradient(X,y,w,b):\n",
    "    \n",
    "    #A ==> (1,m) <== Y\n",
    "    #dw = dj/dw ==> (2,1)\n",
    "    #X ==> (2,m)\n",
    "    #dw ==> (2,m).(m,1)\n",
    "    \n",
    "    m = X.shape[1]\n",
    "    \n",
    "#     w,b = initialize(X)\n",
    "    \n",
    "    A = fpropogate(X,w,b)\n",
    "    \n",
    "    #dJ/dw\n",
    "    dw = (1/m)*np.dot(X, (A - y).T)\n",
    "    \n",
    "    #dJ/db\n",
    "    db = (1/m)*np.sum(A-y)\n",
    "    \n",
    "    return dw , db\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "metadata": {},
   "outputs": [],
   "source": [
    "def backprop(X,y,w,b,epoch):\n",
    "    \n",
    "    m = X.shape[1]\n",
    "    \n",
    " \n",
    "    \n",
    "    #learning rate : a = 0.001\n",
    "    a = 0.05\n",
    "    \n",
    "    for i in range(epoch):\n",
    "        \n",
    "        dw , db = gradient(X,y,w,b)\n",
    "        \n",
    "        w = w - a*dw\n",
    "        \n",
    "        b = b - a*db\n",
    "    \n",
    "    \n",
    "    w_final = w\n",
    "    b_final = b\n",
    "    \n",
    "    return w_final , b_final"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {},
   "outputs": [],
   "source": [
    "# from scipy.optimize import minimize\n",
    "\n",
    "w , b = initialize(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {},
   "outputs": [],
   "source": [
    "wf , bf = backprop(X,y,w,b,100000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "metadata": {},
   "outputs": [],
   "source": [
    "# wf , bf = backprop(X,y,w,b,100000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [],
   "source": [
    "# cost(X,y,wf,bf)\n",
    "def predict(X,w = wf, b = bf):\n",
    "    \n",
    "    yp = np.zeros((1,100))\n",
    "    \n",
    "    Z = np.dot(w.T , X) + b\n",
    "    A = sigma(Z)\n",
    "    \n",
    "    for i in range(100):\n",
    "        \n",
    "        if A[0,i] >=0.50:\n",
    "            yp[0,i] = 1\n",
    "        else:\n",
    "            yp[0,i] = 0\n",
    "    return yp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = LogisticRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [],
   "source": [
    "Xt = df[['Exam1' , 'Exam2']]\n",
    "\n",
    "yt = df['Admitted']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = LogisticRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19bf863bbb0>"
      ]
     },
     "execution_count": 128,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.scatterplot(df['Exam1'] , df['Exam2'] , hue=df['Admitted'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression()"
      ]
     },
     "execution_count": 129,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1], dtype=int64)"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.predict([[70,60]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {},
   "outputs": [],
   "source": [
    "yp = predict(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['Pred'] = yp.reshape(100,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Exam1</th>\n",
       "      <th>Exam2</th>\n",
       "      <th>Admitted</th>\n",
       "      <th>Pred</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>34.623660</td>\n",
       "      <td>78.024693</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.286711</td>\n",
       "      <td>43.894998</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>35.847409</td>\n",
       "      <td>72.902198</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60.182599</td>\n",
       "      <td>86.308552</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>79.032736</td>\n",
       "      <td>75.344376</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>83.489163</td>\n",
       "      <td>48.380286</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>42.261701</td>\n",
       "      <td>87.103851</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>99.315009</td>\n",
       "      <td>68.775409</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>55.340018</td>\n",
       "      <td>64.931938</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>74.775893</td>\n",
       "      <td>89.529813</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Exam1      Exam2  Admitted  Pred\n",
       "0   34.623660  78.024693         0   0.0\n",
       "1   30.286711  43.894998         0   0.0\n",
       "2   35.847409  72.902198         0   0.0\n",
       "3   60.182599  86.308552         1   0.0\n",
       "4   79.032736  75.344376         1   1.0\n",
       "..        ...        ...       ...   ...\n",
       "95  83.489163  48.380286         1   0.0\n",
       "96  42.261701  87.103851         1   0.0\n",
       "97  99.315009  68.775409         1   1.0\n",
       "98  55.340018  64.931938         1   0.0\n",
       "99  74.775893  89.529813         1   1.0\n",
       "\n",
       "[100 rows x 4 columns]"
      ]
     },
     "execution_count": 187,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
